#include<stdio.h>
#include<stdlib.h>

typedef struct {
int *base;
int *top;
int stacksize;
}SqStack;

int InitStack(SqStack &S){
S.base=(int *)malloc(sizeof(int));
S.top=S.base;
S.stacksize=10;
return 0;
}

int GetTop(SqStack &S,int &e){
if(S.top==S.base)
    printf("空/n");
e=*(S.top-1);
return 0;
}

int Push(SqStack &S,int e){
	if(S.top-S.base>=S.stacksize){
		S.base=(int *)realloc(S.base,(S.stacksize+1)*sizeof(int));
		S.top=S.base+S.stacksize;
		S.stacksize+=1;
	}
	*S.top++=e;
	return 0;
}
int Pop(SqStack &S,int &e){
	e=*--S.top;
	return 0;
}
int main(){
	SqStack s;
	int a=0;
	InitStack(s);
	Push(s,1);
	Push(s,2);
	Push(s,100);
	Push(s,10000);
	Pop(s,a);
	Pop(s,a);
	Push(s,4294967295);
	Push(s,4294967296);
	return 0;
}